home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
lisp
/
kcl
/
akcl
/
kcl.lha
/
lsp
/
arraylib.c
next >
Wrap
C/C++ Source or Header
|
1987-06-04
|
19KB
|
891 lines
/* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
#include <cmpinclude.h>
#include "arraylib.h"
init_arraylib(start,size,data)char *start;int size;object data;
{ register object *base=vs_top;register object *sup=base+VM2;vs_top=sup;vs_check;
Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
base[0]= VV[0];
(void)simple_symlispcall_no_event(VV[20],base+0,1);
MF(VV[21],L2,start,size,data);
MF(VV[22],L3,start,size,data);
MF(VV[23],L4,start,size,data);
MF(VV[24],L5,start,size,data);
MF(VV[25],L6,start,size,data);
MF(VV[26],L7,start,size,data);
MF(VV[27],L8,start,size,data);
MF(VV[28],L9,start,size,data);
MF(VV[29],L10,start,size,data);
MF(VV[30],L11,start,size,data);
MF(VV[31],L12,start,size,data);
MF(VV[32],L13,start,size,data);
MF(VV[33],L14,start,size,data);
MF(VV[34],L15,start,size,data);
MF(VV[35],L16,start,size,data);
MF(VV[36],L17,start,size,data);
MF(VV[37],L18,start,size,data);
MF(VV[38],L19,start,size,data);
MF(VV[39],L20,start,size,data);
MF(VV[40],L21,start,size,data);
MF(VV[41],L22,start,size,data);
MF(VV[42],L23,start,size,data);
MF(VV[43],L24,start,size,data);
MF(VV[44],L25,start,size,data);
vs_top=vs_base=base;
}
/* function definition for MAKE-ARRAY */
static L2()
{ register object *base=vs_base;
register object *sup=base+VM3;
vs_reserve(VM3);
if(vs_top-vs_base<1) too_few_arguments();
parse_key(vs_base+1,FALSE,FALSE,8,VV[4],VV[3],VV[5],VV[19],VV[17],VV[45],VV[46],VV[47]);
vs_top=sup;
if(base[9]==Cnil){
base[1]= Ct;
}else{}
if(base[15]==Cnil){
base[7]= VV[1];
}else{}
if(!(type_of(base[0])==t_fixnum||type_of(base[0])==t_bignum)){
goto T5;}
base[0]= make_cons(base[0],Cnil);
T5:;
if(!((length(base[0]))==(1))){
goto T10;}
base[18]= base[1];
base[19]= car(base[0]);
base[20]= base[4];
base[21]= base[5];
base[22]= base[6];
base[23]= base[7];
base[24]= base[8];
vs_top=(vs_base=base+18)+7;
siLmake_vector();
vs_top=sup;
base[17]= vs_base[0];
if((base[10])==Cnil){
goto T20;}
{int V1;
int V2;
V1= fix(car(base[0]));
V2= 0;
T26:;
if(!((V2)>=(V1))){
goto T27;}
goto T20;
T27:;
(void)(aset1(base[17],V2,base[2]));
V2= (V2)+1;
goto T26;}
T20:;
if((base[11])==Cnil){
goto T35;}
{int V3;
int V4;
V3= fix(car(base[0]));
V4= 0;
T41:;
if(!((V4)>=(V3))){
goto T42;}
goto T35;
T42:;
base[18]= elt(base[3],V4);
(void)(aset1(base[17],V4,base[18]));
V4= (V4)+1;
goto T41;}
T35:;
vs_top=(vs_base=base+17)+1;
return;
T10:;
base[18]= base[1];
base[19]= base[4];
base[20]= base[6];
base[21]= base[7];
base[22]= base[8];
{object V5;
V5= base[0];
vs_top=base+23;
while(!endp(V5))
{vs_push(car(V5));V5=cdr(V5);}
vs_base=base+18;}
siLmake_pure_array();
vs_top=sup;
base[17]= vs_base[0];
if((base[10])==Cnil){
goto T57;}
base[19]= make_fixnum(length(base[0]));
base[20]= VV[3];
base[21]= VV[1];
vs_top=(vs_base=base+19)+3;
Lmake_list();
vs_top=sup;
base[18]= vs_base[0];
T65:;
base[19]= base[17];
base[20]= base[2];
base[21]= base[18];
(void)simple_symlispcall_no_event(VV[48],base+19,3);
base[19]= base[18];
base[20]= base[0];
vs_top=(vs_base=base+19)+2;
L3();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T72;}
goto T57;
T72:;
goto T65;
T57:;
if((base[11])==Cnil){
goto T79;}
base[19]= make_fixnum(length(base[0]));
base[20]= VV[3];
base[21]= VV[1];
vs_top=(vs_base=base+19)+3;
Lmake_list();
vs_top=sup;
base[18]= vs_base[0];
T87:;
base[19]=symbol_function(VV[48]);
base[20]= base[17];
base[22]= base[3];
base[23]= base[18];
vs_top=(vs_base=base+22)+2;
L4();
vs_top=sup;
base[21]= vs_base[0];
base[22]= base[18];
(void)simple_lispcall_no_event(base+19,3);
base[19]= base[18];
base[20]= base[0];
vs_top=(vs_base=base+19)+2;
L3();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T96;}
goto T79;
T96:;
goto T87;
T79:;
vs_top=(vs_base=base+17)+1;
return;
}
/* function definition for INCREMENT-CURSOR */
static L3()
{ register object *base=vs_base;
register object *sup=base+VM4;
vs_reserve(VM4);
check_arg(2);
vs_top=sup;
TTL:;
if((base[0])!=Cnil){
goto T104;}
base[2]= Ct;
vs_top=(vs_base=base+2)+1;
return;
T104:;
base[3]= cdr(base[0]);
base[4]= cdr(base[1]);
vs_top=(vs_base=base+3)+2;
L3();
vs_top=sup;
base[2]= vs_base[0];
if((base[2])==Cnil){
goto T110;}
if(!(((fix(car(base[0])))+1)>=(fix(car(base[1]))))){
goto T113;}
if(type_of(base[0])!=t_cons)FEwrong_type_argument(Scons,base[0]);
(base[0])->c.c_car = VV[1];
base[3]= Ct;
vs_top=(vs_base=base+3)+1;
return;
T113:;
base[3]= make_fixnum((fix(car(base[0])))+1);
if(type_of(base[0])!=t_cons)FEwrong_type_argument(Scons,base[0]);
(base[0])->c.c_car = base[3];
base[3]= Cnil;
vs_top=(vs_base=base+3)+1;
return;
T110:;
base[3]= Cnil;
vs_top=(vs_base=base+3)+1;
return;
}
/* function definition for SEQUENCE-CURSOR */
static L4()
{ register object *base=vs_base;
register object *sup=base+VM5;
vs_reserve(VM5);
check_arg(2);
vs_top=sup;
TTL:;
if((base[1])!=Cnil){
goto T118;}
vs_top=(vs_base=base+0)+1;
return;
T118:;
base[0]= elt(base[0],fix(car(base[1])));
base[1]= cdr(base[1]);
goto TTL;
}
/* function definition for VECTOR */
static L5()
{ register object *base=vs_base;
register object *sup=base+VM6;
vs_reserve(VM6);
vs_top[0]=Cnil;
{object *p=vs_top;
for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
vs_top=sup;
base[2]= make_fixnum(length(base[0]));
base[1]= make_cons(base[2],Cnil);
base[2]= VV[4];
base[3]= Ct;
base[4]= VV[5];
base[5]= base[0];
vs_top=(vs_base=base+1)+5;
L2();
return;
}
/* function definition for ARRAY-DIMENSIONS */
static L6()
{ register object *base=vs_base;
register object *sup=base+VM7;
vs_reserve(VM7);
check_arg(1);
vs_top=sup;
TTL:;
base[3]= base[0];
vs_top=(vs_base=base+3)+1;
Larray_rank();
vs_top=sup;
base[1]= vs_base[0];
base[2]= Cnil;
T131:;
if(!(number_compare(base[1],VV[1])==0)){
goto T132;}
vs_top=(vs_base=base+2)+1;
return;
T132:;
base[1]= one_minus(base[1]);
base[4]= base[0];
base[5]= base[1];
vs_top=(vs_base=base+4)+2;
Larray_dimension();
vs_top=sup;
base[3]= vs_base[0];
base[2]= make_cons(base[3],base[2]);
goto T131;
}
/* function definition for ARRAY-IN-BOUNDS-P */
static L7()
{ register object *base=vs_base;
register object *sup=base+VM8;
vs_reserve(VM8);
if(vs_top-vs_base<1) too_few_arguments();
vs_base=vs_base+1;
vs_top[0]=Cnil;
{object *p=vs_top;
for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
vs_top=sup;
base[3]= base[0];
vs_top=(vs_base=base+3)+1;
Larray_rank();
vs_top=sup;
base[2]= vs_base[0];
base[3]= make_fixnum(length(base[1]));
if(!(number_compare(base[2],base[3])!=0)){
goto T147;}
base[3]= VV[6];
base[4]= base[2];
base[5]= make_fixnum(length(base[1]));
vs_top=(vs_base=base+3)+3;
Lerror();
vs_top=sup;
T147:;
base[3]= VV[1];
base[4]= base[1];
T154:;
if(!(number_compare(base[3],base[2])>=0)){
goto T155;}
base[5]= Ct;
vs_top=(vs_base=base+5)+1;
return;
T155:;
if(number_compare(car(base[4]),VV[1])<0){
goto T160;}
{object V6= car(base[4]);
base[6]= base[0];
base[7]= base[3];
vs_top=(vs_base=base+6)+2;
Larray_dimension();
vs_top=sup;
base[5]= vs_base[0];
if(!(number_compare(V6,base[5])>=0)){
goto T159;}}
T160:;
base[5]= Cnil;
vs_top=(vs_base=base+5)+1;
return;
T159:;
base[3]= one_plus(base[3]);
base[4]= cdr(base[4]);
goto T154;
}
/* function definition for ARRAY-ROW-MAJOR-INDEX */
static L8()
{ register object *base=vs_base;
register object *sup=base+VM9;
vs_reserve(VM9);
if(vs_top-vs_base<1) too_few_arguments();
vs_base=vs_base+1;
vs_top[0]=Cnil;
{object *p=vs_top;
for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
vs_top=sup;
base[2]= VV[1];
base[3]= VV[1];
base[4]= base[1];
T172:;
if((base[4])!=Cnil){
goto T173;}
vs_top=(vs_base=base+3)+1;
return;
T173:;
base[5]= one_plus(base[2]);
base[7]= base[0];
base[8]= base[2];
vs_top=(vs_base=base+7)+2;
Larray_dimension();
vs_top=sup;
base[6]= vs_base[0];
base[7]= number_times(base[3],base[6]);
base[3]= number_plus(base[7],car(base[4]));
base[4]= cdr(base[4]);
base[2]= base[5];
goto T172;
}
/* function definition for BIT */
static L9()
{ register object *base=vs_base;
register object *sup=base+VM10;
vs_reserve(VM10);
if(vs_top-vs_base<1) too_few_arguments();
vs_base=vs_base+1;
vs_top[0]=Cnil;
{object *p=vs_top;
for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
vs_top=sup;
base[2]= base[0];
{object V7;
V7= base[1];
vs_top=base+3;
while(!endp(V7))
{vs_push(car(V7));V7=cdr(V7);}
vs_base=base+2;}
Laref();
return;
}
/* function definition for SBIT */
static L10()
{ register object *base=vs_base;
register object *sup=base+VM11;
vs_reserve(VM11);
if(vs_top-vs_base<1) too_few_arguments();
vs_base=vs_base+1;
vs_top[0]=Cnil;
{object *p=vs_top;
for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
vs_top=sup;
base[2]= base[0];
{object V8;
V8= base[1];
vs_top=base+3;
while(!endp(V8))
{vs_push(car(V8));V8=cdr(V8);}
vs_base=base+2;}
Laref();
return;
}
/* function definition for BIT-AND */
static L11()
{ register object *base=vs_base;
register object *sup=base+VM12;
vs_reserve(VM12);
if(vs_top-vs_base<2) too_few_arguments();
if(vs_top-vs_base>3) too_many_arguments();
vs_base=vs_base+2;
if(vs_base>=vs_top){vs_top=sup;goto T189;}
vs_top=sup;
goto T190;
T189:;
base[2]= Cnil;
T190:;
base[3]= VV[2];
base[4]= base[0];
base[5]= base[1];
base[6]= base[2];
symlispcall_no_event(VV[49],base+3,4);
return;
}
/* function definition for BIT-IOR */
static L12()
{ register object *base=vs_base;
register object *sup=base+VM13;
vs_reserve(VM13);
if(vs_top-vs_base<2) too_few_arguments();
if(vs_top-vs_base>3) too_many_arguments();
vs_base=vs_base+2;
if(vs_base>=vs_top){vs_top=sup;goto T196;}
vs_top=sup;
goto T197;
T196:;
base[2]= Cnil;
T197:;
base[3]= VV[7];
base[4]= base[0];
base[5]= base[1];
base[6]= base[2];
symlispcall_no_event(VV[49],base+3,4);
return;
}
/* function definition for BIT-XOR */
static L13()
{ register object *base=vs_base;
register object *sup=base+VM14;
vs_reserve(VM14);
if(vs_top-vs_base<2) too_few_arguments();
if(vs_top-vs_base>3) too_many_arguments();
vs_base=vs_base+2;
if(vs_base>=vs_top){vs_top=sup;goto T203;}
vs_top=sup;
goto T204;
T203:;
base[2]= Cnil;
T204:;
base[3]= VV[8];
base[4]= base[0];
base[5]= base[1];
base[6]= base[2];
symlispcall_no_event(VV[49],base+3,4);
return;
}
/* function definition for BIT-EQV */
static L14()
{ register object *base=vs_base;
register object *sup=base+VM15;
vs_reserve(VM15);
if(vs_top-vs_base<2) too_few_arguments();
if(vs_top-vs_base>3) too_many_arguments();
vs_base=vs_base+2;
if(vs_base>=vs_top){vs_top=sup;goto T210;}
vs_top=sup;
goto T211;
T210:;
base[2]= Cnil;
T211:;
base[3]= VV[9];
base[4]= base[0];
base[5]= base[1];
base[6]= base[2];
symlispcall_no_event(VV[49],base+3,4);
return;
}
/* function definition for BIT-NAND */
static L15()
{ register object *base=vs_base;
register object *sup=base+VM16;
vs_reserve(VM16);
if(vs_top-vs_base<2) too_few_arguments();
if(vs_top-vs_base>3) too_many_arguments();
vs_base=vs_base+2;
if(vs_base>=vs_top){vs_top=sup;goto T217;}
vs_top=sup;
goto T218;
T217:;
base[2]= Cnil;
T218:;
base[3]= VV[10];
base[4]= base[0];
base[5]= base[1];
base[6]= base[2];
symlispcall_no_event(VV[49],base+3,4);
return;
}
/* function definition for BIT-NOR */
static L16()
{ register object *base=vs_base;
register object *sup=base+VM17;
vs_reserve(VM17);
if(vs_top-vs_base<2) too_few_arguments();
if(vs_top-vs_base>3) too_many_arguments();
vs_base=vs_base+2;
if(vs_base>=vs_top){vs_top=sup;goto T224;}
vs_top=sup;
goto T225;
T224:;
base[2]= Cnil;
T225:;
base[3]= VV[11];
base[4]= base[0];
base[5]= base[1];
base[6]= base[2];
symlispcall_no_event(VV[49],base+3,4);
return;
}
/* function definition for BIT-ANDC1 */
static L17()
{ register object *base=vs_base;
register object *sup=base+VM18;
vs_reserve(VM18);
if(vs_top-vs_base<2) too_few_arguments();
if(vs_top-vs_base>3) too_many_arguments();
vs_base=vs_base+2;
if(vs_base>=vs_top){vs_top=sup;goto T231;}
vs_top=sup;
goto T232;
T231:;
base[2]= Cnil;
T232:;
base[3]= VV[12];
base[4]= base[0];
base[5]= base[1];
base[6]= base[2];
symlispcall_no_event(VV[49],base+3,4);
return;
}
/* function definition for BIT-ANDC2 */
static L18()
{ register object *base=vs_base;
register object *sup=base+VM19;
vs_reserve(VM19);
if(vs_top-vs_base<2) too_few_arguments();
if(vs_top-vs_base>3) too_many_arguments();
vs_base=vs_base+2;
if(vs_base>=vs_top){vs_top=sup;goto T238;}
vs_top=sup;
goto T239;
T238:;
base[2]= Cnil;
T239:;
base[3]= VV[13];
base[4]= base[0];
base[5]= base[1];
base[6]= base[2];
symlispcall_no_event(VV[49],base+3,4);
return;
}
/* function definition for BIT-ORC1 */
static L19()
{ register object *base=vs_base;
register object *sup=base+VM20;
vs_reserve(VM20);
if(vs_top-vs_base<2) too_few_arguments();
if(vs_top-vs_base>3) too_many_arguments();
vs_base=vs_base+2;
if(vs_base>=vs_top){vs_top=sup;goto T245;}
vs_top=sup;
goto T246;
T245:;
base[2]= Cnil;
T246:;
base[3]= VV[14];
base[4]= base[0];
base[5]= base[1];
base[6]= base[2];
symlispcall_no_event(VV[49],base+3,4);
return;
}
/* function definition for BIT-ORC2 */
static L20()
{ register object *base=vs_base;
register object *sup=base+VM21;
vs_reserve(VM21);
if(vs_top-vs_base<2) too_few_arguments();
if(vs_top-vs_base>3) too_many_arguments();
vs_base=vs_base+2;
if(vs_base>=vs_top){vs_top=sup;goto T252;}
vs_top=sup;
goto T253;
T252:;
base[2]= Cnil;
T253:;
base[3]= VV[15];
base[4]= base[0];
base[5]= base[1];
base[6]= base[2];
symlispcall_no_event(VV[49],base+3,4);
return;
}
/* function definition for BIT-NOT */
static L21()
{ register object *base=vs_base;
register object *sup=base+VM22;
vs_reserve(VM22);
if(vs_top-vs_base<1) too_few_arguments();
if(vs_top-vs_base>2) too_many_arguments();
vs_base=vs_base+1;
if(vs_base>=vs_top){vs_top=sup;goto T259;}
vs_top=sup;
goto T260;
T259:;
base[1]= Cnil;
T260:;
base[2]= VV[16];
base[3]= base[0];
base[4]= base[0];
base[5]= base[1];
symlispcall_no_event(VV[49],base+2,4);
return;
}
/* function definition for VECTOR-PUSH */
static L22()
{ register object *base=vs_base;
register object *sup=base+VM23;
vs_reserve(VM23);
check_arg(2);
vs_top=sup;
TTL:;
{int V9;
base[2]= base[1];
vs_top=(vs_base=base+2)+1;
Lfill_pointer();
vs_top=sup;
V9= fix(vs_base[0]);
base[3]= base[1];
base[4]= VV[1];
vs_top=(vs_base=base+3)+2;
Larray_dimension();
vs_top=sup;
base[2]= vs_base[0];
if(!((V9)<(fix(base[2])))){
goto T269;}
(void)(aset1(base[1],V9,base[0]));
base[2]= base[1];
base[3]= make_fixnum((V9)+1);
vs_top=(vs_base=base+2)+2;
siLfill_pointer_set();
vs_top=sup;
base[2]= make_fixnum(V9);
vs_top=(vs_base=base+2)+1;
return;
T269:;
base[2]= Cnil;
vs_top=(vs_base=base+2)+1;
return;}
}
/* function definition for VECTOR-PUSH-EXTEND */
static L23()
{ register object *base=vs_base;
register object *sup=base+VM24;
vs_reserve(VM24);
if(vs_top-vs_base<2) too_few_arguments();
if(vs_top-vs_base>3) too_many_arguments();
vs_base=vs_base+2;
if(vs_base>=vs_top){vs_top=sup;goto T278;}
vs_top=sup;
goto T279;
T278:;
base[3]= base[1];
base[4]= VV[1];
vs_top=(vs_base=base+3)+2;
Larray_dimension();
vs_top=sup;
base[2]= vs_base[0];
T279:;
{int V10;
base[3]= base[1];
vs_top=(vs_base=base+3)+1;
Lfill_pointer();
vs_top=sup;
V10= fix(vs_base[0]);
base[4]= base[1];
base[5]= VV[1];
vs_top=(vs_base=base+4)+2;
Larray_dimension();
vs_top=sup;
base[3]= vs_base[0];
if(!((V10)<(fix(base[3])))){
goto T286;}
(void)(aset1(base[1],V10,base[0]));
base[3]= base[1];
base[4]= make_fixnum((V10)+1);
vs_top=(vs_base=base+3)+2;
siLfill_pointer_set();
vs_top=sup;
base[3]= make_fixnum(V10);
vs_top=(vs_base=base+3)+1;
return;
T286:;
base[3]= base[1];
base[6]= base[1];
base[7]= VV[1];
vs_top=(vs_base=base+6)+2;
Larray_dimension();
vs_top=sup;
base[5]= vs_base[0];
base[6]= number_plus(base[5],base[2]);
base[4]= make_cons(base[6],Cnil);
base[5]= VV[4];
base[7]= base[1];
vs_top=(vs_base=base+7)+1;
Larray_element_type();
vs_top=sup;
base[6]= vs_base[0];
base[7]= VV[17];
base[8]= make_fixnum(V10);
vs_top=(vs_base=base+3)+6;
L25();
vs_top=sup;
(void)(aset1(base[1],V10,base[0]));
base[3]= base[1];
base[4]= make_fixnum((V10)+1);
vs_top=(vs_base=base+3)+2;
siLfill_pointer_set();
vs_top=sup;
base[3]= make_fixnum(V10);
vs_top=(vs_base=base+3)+1;
return;}
}
/* function definition for VECTOR-POP */
static L24()
{ register object *base=vs_base;
register object *sup=base+VM25;
vs_reserve(VM25);
check_arg(1);
vs_top=sup;
TTL:;
{int V11;
base[1]= base[0];
vs_top=(vs_base=base+1)+1;
Lfill_pointer();
vs_top=sup;
V11= fix(vs_base[0]);
if(!((V11)==(0))){
goto T312;}
base[1]= VV[18];
base[2]= base[0];
vs_top=(vs_base=base+1)+2;
Lerror();
vs_top=sup;
T312:;
base[1]= base[0];
base[2]= make_fixnum((V11)-1);
vs_top=(vs_base=base+1)+2;
siLfill_pointer_set();
vs_top=sup;
base[1]= aref1(base[0],(V11)-1);
vs_top=(vs_base=base+1)+1;
return;}
}
/* function definition for ADJUST-ARRAY */
static L25()
{ register object *base=vs_base;
register object *sup=base+VM26;
vs_reserve(VM26);
if(vs_top-vs_base<2) too_few_arguments();
parse_key(vs_base+2,TRUE,FALSE,7,VV[4],VV[3],VV[5],VV[17],VV[45],VV[46],VV[47]);
vs_top=sup;
if(!(type_of(base[1])==t_fixnum||type_of(base[1])==t_bignum)){
goto T320;}
base[1]= make_cons(base[1],Cnil);
T320:;
base[18]= base[0];
vs_top=(vs_base=base+18)+1;
Larray_element_type();
vs_top=sup;
base[17]= vs_base[0];
if(base[17]==Ct){
goto T324;}
base[2]= make_cons(base[17],base[2]);
base[2]= make_cons(VV[4],base[2]);
T324:;
base[18]= base[1];
base[19]= VV[19];
base[20]= Ct;
{object V12;
V12= base[2];
vs_top=base+21;
while(!endp(V12))
{vs_push(car(V12));V12=cdr(V12);}
vs_base=base+18;}
L2();
vs_top=sup;
base[17]= vs_base[0];
base[19]= make_fixnum(length(base[1]));
base[20]= VV[3];
base[21]= VV[1];
vs_top=(vs_base=base+19)+3;
Lmake_list();
vs_top=sup;
base[18]= vs_base[0];
T343:;
base[19]= base[0];
{object V13;
V13= base[18];
vs_top=base+20;
while(!endp(V13))
{vs_push(car(V13));V13=cdr(V13);}
vs_base=base+19;}
L7();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T346;}
base[19]=symbol_function(VV[48]);
base[20]= base[17];
base[22]= base[0];
{object V14;
V14= base[18];
vs_top=base+23;
while(!endp(V14))
{vs_push(car(V14));V14=cdr(V14);}
vs_base=base+22;}
Laref();
vs_top=sup;
base[21]= vs_base[0];
base[22]= base[18];
(void)simple_lispcall_no_event(base+19,3);
T346:;
base[19]= base[18];
base[20]= base[1];
vs_top=(vs_base=base+19)+2;
L3();
vs_top=sup;
if((vs_base[0])==Cnil){
goto T356;}
goto T337;
T356:;
goto T343;
T337:;
base[18]= base[0];
base[19]= base[17];
vs_top=(vs_base=base+18)+2;
siLreplace_array();
return;
}